﻿/*
 * Created by SharpDevelop.
 * User: Miguel
 * Date: 01/10/2011
 * Time: 05:26 a.m.
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using System.Collections.Generic;
using Business_Entity;
using Business_Logic;

namespace PetSoft.GUI.RRHH
{
	/// <summary>
	/// Description of GUIMantenerTurno.
	/// </summary>
	public partial class GUIMantenerTurno : Form
	{
		public BEEmpleado empleado;
		
		public GUIMantenerTurno()
		{
			try
			{
				//
				// The InitializeComponent() call is required for Windows Forms designer support.
				//
				InitializeComponent();		
				//
				// TODO: Add constructor code after the InitializeComponent() call.
				//
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}

		void aceptarClick(object sender, EventArgs e)
		{	
			try
			{	if ((lunesTrabaja.Checked == false) && (martesTrabaja.Checked == false) && 
				    (miercolesTrabaja.Checked == false) && (juevesTrabaja.Checked == false) &&
				    (viernesTrabaja.Checked == false) && (sabadoTrabaja.Checked == false) &&
				    (domingoTrabaja.Checked == false))
				{
				    	MessageBox.Show("No ha seleccionado ningun dia de trabajo", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				}
				else
				{
					if (MessageBox.Show("¿Está seguro que desea guardar los cambios hechos?", "Pregunta", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)
					{
						BLTurno bl = new BLTurno();
						List<DateTime> horas = new List<DateTime>();
						
						if (lunesTrabaja.Checked == true)
						{
							horas.Add(lunesIngresoDTP.Value);
							horas.Add(lunesSalidaDTP.Value);
						}
						else
						{
							horas.Add(DateTime.MinValue);
							horas.Add(DateTime.MinValue);
						}
						
						if (martesTrabaja.Checked == true)
						{
							horas.Add(martesIngresoDTP.Value);
							horas.Add(martesSalidaDTP.Value);
						}
						else
						{
							horas.Add(DateTime.MinValue);
							horas.Add(DateTime.MinValue);
						}
						
						if (miercolesTrabaja.Checked == true)
						{
							horas.Add(miercolesIngresoDTP.Value);
							horas.Add(miercolesSalidaDTP.Value);
						}
						else
						{
							horas.Add(DateTime.MinValue);
							horas.Add(DateTime.MinValue);
						}
						
						if (juevesTrabaja.Checked == true)
						{
							horas.Add(juevesIngresoDTP.Value);
							horas.Add(juevesSalidaDTP.Value);
						}
						else
						{
							horas.Add(DateTime.MinValue);
							horas.Add(DateTime.MinValue);
						}
						
						if (viernesTrabaja.Checked == true)
						{
							horas.Add(viernesIngresoDTP.Value);
							horas.Add(viernesSalidaDTP.Value);
						}
						else
						{
							horas.Add(DateTime.MinValue);
							horas.Add(DateTime.MinValue);
						}
						
						if (sabadoTrabaja.Checked == true)
						{
							horas.Add(sabadoIngresoDTP.Value);
							horas.Add(sabadoSalidaDTP.Value);
						}
						else
						{
							horas.Add(DateTime.MinValue);
							horas.Add(DateTime.MinValue);
						}
						
						if (domingoTrabaja.Checked == true)
						{
							horas.Add(domingoIngresoDTP.Value);
							horas.Add(domingoSalidaDTP.Value);
						}
						else
						{
							horas.Add(DateTime.MinValue);
							horas.Add(DateTime.MinValue);
						}
						
						int res = bl.modificarTurno(horas, empleado.IdHorario);
						
						if (res == 1){
							MessageBox.Show("Turno actualizado", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
							this.Close();					
						}
						else 
						{
							MessageBox.Show("Error actualizando turnos","Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
						}
					}
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void cancelarClick(object sender, EventArgs e)
		{
			try
			{
				this.Close();
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void lunesTrabajaChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.lunesTrabaja.Checked == true)
				{
					this.lunesIngresoDTP.Enabled = true;
					this.lunesSalidaDTP.Enabled = true;				
				}
				else if (this.lunesTrabaja.Checked == false)
				{
					this.lunesIngresoDTP.Enabled = false;
					this.lunesSalidaDTP.Enabled = false;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void martesTrabajaChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.martesTrabaja.Checked == true)
				{
					this.martesIngresoDTP.Enabled = true;
					this.martesSalidaDTP.Enabled = true;
				}
				else if (this.martesTrabaja.Checked == false)
				{
					this.martesIngresoDTP.Enabled = false;
					this.martesSalidaDTP.Enabled = false;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void miercolesTrabajaChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.miercolesTrabaja.Checked == true)
				{
					this.miercolesIngresoDTP.Enabled = true;
					this.miercolesSalidaDTP.Enabled = true;			
				}
				else if (this.miercolesTrabaja.Checked == false)
				{
					this.miercolesIngresoDTP.Enabled = false;
					this.miercolesSalidaDTP.Enabled = false;				
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}

		void juevesTrabajaChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.juevesTrabaja.Checked == true)
				{
					this.juevesIngresoDTP.Enabled = true;
					this.juevesSalidaDTP.Enabled = true;
				}
				else if (this.juevesTrabaja.Checked == false) 
				{
					this.juevesIngresoDTP.Enabled = false;
					this.juevesSalidaDTP.Enabled = false;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void viernesTrabajaChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.viernesTrabaja.Checked == true)
				{
					this.viernesIngresoDTP.Enabled = true;
					this.viernesSalidaDTP.Enabled = true;
				}
				else if (this.viernesTrabaja.Checked == false)
				{
					this.viernesIngresoDTP.Enabled = false;
					this.viernesSalidaDTP.Enabled = false;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
			
		void sabadoTrabajaChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.sabadoTrabaja.Checked == true)
				{
					this.sabadoIngresoDTP.Enabled = true;
					this.sabadoSalidaDTP.Enabled = true;
				}
				else if (this.sabadoTrabaja.Checked == false) 
				{
					this.sabadoIngresoDTP.Enabled = false;
					this.sabadoSalidaDTP.Enabled = false;				
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void domingoTrabajaChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.domingoTrabaja.Checked == true)
				{
					this.domingoIngresoDTP.Enabled = true;
					this.domingoSalidaDTP.Enabled = true;
				}
				else if (this.sabadoTrabaja.Checked == false) 
				{
					this.domingoIngresoDTP.Enabled = false;
					this.domingoSalidaDTP.Enabled = false;				
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
				
		void lunesIngresoDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.lunesIngresoDTP.Value > this.lunesSalidaDTP.Value)
				{
					this.lunesIngresoDTP.Value = this.lunesSalidaDTP.Value;	
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void lunesSalidaDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.lunesIngresoDTP.Value > this.lunesSalidaDTP.Value)
				{
					this.lunesIngresoDTP.Value = this.lunesSalidaDTP.Value;	
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void martesIngresoDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.martesIngresoDTP.Value > this.martesSalidaDTP.Value)
				{
					this.martesIngresoDTP.Value = this.martesSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void martesSalidaDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.martesIngresoDTP.Value > this.martesSalidaDTP.Value)
				{
					this.martesIngresoDTP.Value = this.martesSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void miercolesIngresoDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.miercolesIngresoDTP.Value > this.miercolesSalidaDTP.Value)
				{
					this.miercolesIngresoDTP.Value = this.miercolesSalidaDTP.Value;	
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void miercolesSalidaDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.miercolesIngresoDTP.Value > this.miercolesSalidaDTP.Value)
				{
					this.miercolesIngresoDTP.Value = this.miercolesSalidaDTP.Value;	
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void juevesIngresoDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.juevesIngresoDTP.Value > this.juevesSalidaDTP.Value)
				{
					this.juevesIngresoDTP.Value = this.juevesSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void juevesSalidaDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.juevesIngresoDTP.Value > this.juevesSalidaDTP.Value)
				{
					this.juevesIngresoDTP.Value = this.juevesSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void viernesIngresoDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.viernesIngresoDTP.Value > this.viernesSalidaDTP.Value)
				{
					this.viernesIngresoDTP.Value = this.viernesSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void viernesSalidaDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.viernesIngresoDTP.Value > this.viernesSalidaDTP.Value)
				{
					this.viernesIngresoDTP.Value = this.viernesSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void sabadoIngresoDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.sabadoIngresoDTP.Value > this.sabadoSalidaDTP.Value)
				{
					this.sabadoIngresoDTP.Value = this.sabadoSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void sabadoSalidaDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.sabadoIngresoDTP.Value > this.sabadoSalidaDTP.Value)
				{
					this.sabadoIngresoDTP.Value = this.sabadoSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void domingoIngresoDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.domingoIngresoDTP.Value > this.domingoSalidaDTP.Value)
				{
					this.domingoIngresoDTP.Value = this.domingoSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void domingoSalidaDTPValueChanged(object sender, EventArgs e)
		{
			try
			{
				if (this.domingoIngresoDTP.Value > this.domingoSalidaDTP.Value)
				{
					this.domingoIngresoDTP.Value = this.domingoSalidaDTP.Value;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		public void llenarDatos(BEEmpleado empleado)
		{
			try
			{
				this.nombreTB.Text = empleado.Nombre;
				this.apPaternoTB.Text = empleado.ApPaterno;
				this.apMaternoTB.Text = empleado.ApMaterno;
				
				BLTurno bl = new BLTurno();
				List<BETurno> lista = bl.obtenerTurno(empleado);
				if (lista != null)
				{
					if ((lista[0].HoraEntrada != DateTime.MinValue) && (lista[0].HoraSalida != DateTime.MinValue))
					{
						this.lunesIngresoDTP.Enabled = true;
						this.lunesSalidaDTP.Enabled = true;
						this.lunesTrabaja.Checked = true;
						this.lunesIngresoDTP.Value = lista[0].HoraEntrada;
						this.lunesSalidaDTP.Value = lista[0].HoraSalida;
					}
					
					if ((lista[1].HoraEntrada != DateTime.MinValue) && (lista[1].HoraSalida != DateTime.MinValue))
					{
						this.martesIngresoDTP.Enabled = true;
						this.martesSalidaDTP.Enabled = true;
						this.martesTrabaja.Checked = true;
						this.martesIngresoDTP.Value = lista[1].HoraEntrada;
						this.martesSalidaDTP.Value = lista[1].HoraSalida;
					}
					
					if ((lista[2].HoraEntrada != DateTime.MinValue) && (lista[2].HoraSalida != DateTime.MinValue))
					{
						this.miercolesIngresoDTP.Enabled = true;
						this.miercolesSalidaDTP.Enabled = true;
						this.miercolesTrabaja.Checked = true;
						this.miercolesIngresoDTP.Value = lista[2].HoraEntrada;
						this.miercolesSalidaDTP.Value = lista[2].HoraSalida;
					}
					
					if ((lista[3].HoraEntrada != DateTime.MinValue) && (lista[3].HoraSalida != DateTime.MinValue))
					{
						this.juevesIngresoDTP.Enabled = true;
						this.juevesSalidaDTP.Enabled = true;
						this.juevesTrabaja.Checked = true;
						this.juevesIngresoDTP.Value = lista[3].HoraEntrada;
						this.juevesSalidaDTP.Value = lista[3].HoraSalida;
					}
					
					if ((lista[4].HoraEntrada != DateTime.MinValue) && (lista[4].HoraSalida != DateTime.MinValue))
					{
						this.viernesIngresoDTP.Enabled = true;
						this.viernesSalidaDTP.Enabled = true;
						this.viernesTrabaja.Checked = true;
						this.viernesIngresoDTP.Value = lista[4].HoraEntrada;
						this.viernesSalidaDTP.Value = lista[4].HoraSalida;
					}
					
					if ((lista[5].HoraEntrada != DateTime.MinValue) && (lista[5].HoraSalida != DateTime.MinValue))
					{
						this.sabadoIngresoDTP.Enabled = true;
						this.sabadoSalidaDTP.Enabled = true;
						this.sabadoTrabaja.Checked = true;
						this.sabadoIngresoDTP.Value = lista[5].HoraEntrada;
						this.sabadoSalidaDTP.Value = lista[5].HoraSalida;
					}
					
					if ((lista[6].HoraEntrada != DateTime.MinValue) && (lista[6].HoraSalida != DateTime.MinValue))
					{
						this.domingoIngresoDTP.Enabled = true;
						this.domingoSalidaDTP.Enabled = true;
						this.domingoTrabaja.Checked = true;
						this.domingoIngresoDTP.Value = lista[6].HoraEntrada;
						this.domingoSalidaDTP.Value = lista[6].HoraSalida;
					}
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
	}
}
